// Copyright 2003-2005, FreeHEP.
package org.freehep.util.io.test;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.xml.parsers.SAXParserFactory;
import junit.framework.AssertionFailedError;
import org.freehep.util.io.XMLSequence;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
/**
* Test for XML Sequence.
*
* @author Mark Donszelmann
* @version $Id: XMLSequenceTest.java 8584 2006-08-10 23:06:37Z duns $
*/
public class XMLSequenceTest extends AbstractStreamTest {
/**
* Test XMLSequence reading using XML Parsers.
*
* @throws Exception if something goes wrong
*/
public void testXMLSequence() throws Exception {
File testFile = new File(testDir, "XMLSequence.txt");
XMLSequence sequence = new XMLSequence(new BufferedInputStream(
new FileInputStream(testFile)));
if (!sequence.markSupported()) throw new AssertionFailedError("Mark is not supported for XMLSequence");
sequence.mark((int) testFile.length() + 1);
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
XMLReader xmlReader = factory.newSAXParser().getXMLReader();
int i = 0;
while (sequence.hasNext()) {
InputStream input = sequence.next();
InputSource source = new InputSource(input);
xmlReader.parse(source);
input.close();
i++;
}
sequence.reset();
i = 0;
while (sequence.hasNext()) {
InputStream input = sequence.next();
InputSource source = new InputSource(input);
xmlReader.parse(source);
input.close();
i++;
}
sequence.close();
}
}